const readline = require('readline-sync');
// 练习：
/**
    ---- 多用户的登录注册
    ---- 登录完成后，在后续还需要使用到该用户，如何保存该用户信息
    ---- 1. 存 2. 取 3. 查 4. 退 5. 转
        不能转给自己
        不能转给不存在的人
 */
let userArr = [
    { name: 'zhangsan', password: 123, money: 500 },
    { name: 'lisi', password: 456, money: 1000 }
];


//登陆功能
function login() {
    // let flag = false;//登陆状态
    console.log('请输入账号');
    let user = readline.question();
    console.log('请输入密码');
    let pwd = readline.question() - 0;
    // for (let i = 0; i < userArr.length; i++) {
    //     if (userArr[i].name === user && userArr[i].password === pwd) {
    //         console.log('登陆成功');
    //         userInfo = userArr[i];
    //         flag = true
    //         return i;
    //     }
    // }
    // if (!flag) {
    //     console.log('用户不存在');
    // }
    //[{ name: 'lisi', password: 456, money: 1000 }]
    let result = userArr.filter((item, index) => item.name == user && item.password == pwd);
    if (result.length > 0) {
        console.log('登陆成功');
        return result[0];
    } else {
        console.log('用户不存在');
    }
}

//注册函数
function register() {
    console.log('请输入账号');
    let name = readline.question();
    console.log('请输入密码');
    let password = readline.question() - 0;
    let exist = userArr.some((item) => item.name == name);
    if (exist) {//用户已存在
        console.log('用户已存在');
    } else {
        userArr.push({ name, password, money: 0 });
        console.log(userArr);
    }
}

//转账函数
function transfer(userInfo) {
    console.log('输入转账用户');
    let transUser = readline.question();
    let isFind = false;
    userArr.forEach((item) => {
        if (item.name == transUser) {
            isFind = true;
            //用户存在
            if (userInfo.name == transUser) {
                console.log('不能转给自己');
            } else {
                console.log('请输入人转账金额');
                let money = readline.question() - 0;
                if (money > userInfo.money) {
                    console.log('余额不足，充点儿');
                } else {
                    userInfo.money -= money;
                    item.money += money;
                }

            }
        }
    })
    if (!isFind) {
        console.log('用户不存在');
    }
}


function main() {
    let userInfo;
    while (true) {
        console.log('1.登陆 2.注册 3.退出程序');
        let opt = readline.question() - 0;
        switch (opt) {
            case 1://登陆
                userInfo = login();
                break;
            case 2://注册
                register()
                break;
            case 3://整个函数结束
                console.log(886);
                return;
        }
        if (userInfo) {
            let loginIn = true;
            while (loginIn) {
                console.log('1. 存 2. 取 3. 查  4. 转 5. 退');
                let option = readline.question() - 0;
                switch (option) {
                    case 1:
                        break;
                    case 2:
                        break;
                    case 3:
                        console.log(userInfo.money);
                        break;
                    case 4://转账
                        transfer(userInfo);
                        console.log(userArr);
                        break;
                    case 5://退出当前用户，返回上一层
                        console.log('返回上一层');
                        loginIn = false;
                        break;
                }
            }

        }
    }

}

main()
